home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / trial / demon / TURNPIKE.1 / CLASSES.ZIP / JAVA / AWT / FlowLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  2.6 KB  |  154 lines

  1. package java.awt;
  2.  
  3. public class FlowLayout implements LayoutManager {
  4.    public static final int LEFT = 0;
  5.    public static final int CENTER = 1;
  6.    public static final int RIGHT = 2;
  7.    int align;
  8.    int hgap;
  9.    int vgap;
  10.  
  11.    public FlowLayout() {
  12.       this(1, 5, 5);
  13.    }
  14.  
  15.    public FlowLayout(int var1) {
  16.       this(var1, 5, 5);
  17.    }
  18.  
  19.    public FlowLayout(int var1, int var2, int var3) {
  20.       this.align = var1;
  21.       this.hgap = var2;
  22.       this.vgap = var3;
  23.    }
  24.  
  25.    public void addLayoutComponent(String var1, Component var2) {
  26.    }
  27.  
  28.    public void removeLayoutComponent(Component var1) {
  29.    }
  30.  
  31.    public Dimension preferredLayoutSize(Container var1) {
  32.       Dimension var2 = new Dimension(0, 0);
  33.       int var3 = var1.countComponents();
  34.  
  35.       for(int var4 = 0; var4 < var3; ++var4) {
  36.          Component var5 = var1.getComponent(var4);
  37.          if (var5.visible) {
  38.             Dimension var6 = var5.preferredSize();
  39.             int var7 = var2.height;
  40.             int var8 = var6.height;
  41.             var2.height = var7 >= var8 ? var7 : var8;
  42.             if (var4 > 0) {
  43.                var2.width += this.hgap;
  44.             }
  45.  
  46.             var2.width += var6.width;
  47.          }
  48.       }
  49.  
  50.       Insets var9 = var1.insets();
  51.       var2.width += var9.left + var9.right + this.hgap * 2;
  52.       var2.height += var9.top + var9.bottom + this.vgap * 2;
  53.       return var2;
  54.    }
  55.  
  56.    public Dimension minimumLayoutSize(Container var1) {
  57.       Dimension var2 = new Dimension(0, 0);
  58.       int var3 = var1.countComponents();
  59.  
  60.       for(int var4 = 0; var4 < var3; ++var4) {
  61.          Component var5 = var1.getComponent(var4);
  62.          if (var5.visible) {
  63.             Dimension var6 = var5.minimumSize();
  64.             int var7 = var2.height;
  65.             int var8 = var6.height;
  66.             var2.height = var7 >= var8 ? var7 : var8;
  67.             if (var4 > 0) {
  68.                var2.width += this.hgap;
  69.             }
  70.  
  71.             var2.width += var6.width;
  72.          }
  73.       }
  74.  
  75.       Insets var9 = var1.insets();
  76.       var2.width += var9.left + var9.right + this.hgap * 2;
  77.       var2.height += var9.top + var9.bottom + this.vgap * 2;
  78.       return var2;
  79.    }
  80.  
  81.    private void moveComponents(Container var1, int var2, int var3, int var4, int var5, int var6, int var7) {
  82.       switch (this.align) {
  83.          case 0:
  84.          default:
  85.             break;
  86.          case 1:
  87.             var2 += var4 / 2;
  88.             break;
  89.          case 2:
  90.             var2 += var4;
  91.       }
  92.  
  93.       for(int var8 = var6; var8 < var7; ++var8) {
  94.          Component var9 = var1.getComponent(var8);
  95.          if (var9.visible) {
  96.             var9.move(var2, var3 + (var5 - var9.height) / 2);
  97.             var2 += this.hgap + var9.width;
  98.          }
  99.       }
  100.  
  101.    }
  102.  
  103.    public void layoutContainer(Container var1) {
  104.       Insets var2 = var1.insets();
  105.       int var3 = var1.width - (var2.left + var2.right + this.hgap * 2);
  106.       int var4 = var1.countComponents();
  107.       int var5 = 0;
  108.       int var6 = var2.top + this.vgap;
  109.       int var7 = 0;
  110.       int var8 = 0;
  111.  
  112.       for(int var9 = 0; var9 < var4; ++var9) {
  113.          Component var10 = var1.getComponent(var9);
  114.          if (var10.visible) {
  115.             Dimension var11 = var10.preferredSize();
  116.             var10.resize(var11.width, var11.height);
  117.             if (var5 != 0 && var5 + var11.width > var3) {
  118.                this.moveComponents(var1, var2.left + this.hgap, var6, var3 - var5, var7, var8, var9);
  119.                var5 = var11.width;
  120.                var6 += this.vgap + var7;
  121.                var7 = var11.height;
  122.                var8 = var9;
  123.             } else {
  124.                if (var5 > 0) {
  125.                   var5 += this.hgap;
  126.                }
  127.  
  128.                var5 += var11.width;
  129.                int var12 = var11.height;
  130.                var7 = var7 >= var12 ? var7 : var12;
  131.             }
  132.          }
  133.       }
  134.  
  135.       this.moveComponents(var1, var2.left + this.hgap, var6, var3 - var5, var7, var8, var4);
  136.    }
  137.  
  138.    public String toString() {
  139.       String var1 = "";
  140.       switch (this.align) {
  141.          case 0:
  142.             var1 = ",align=left";
  143.             break;
  144.          case 1:
  145.             var1 = ",align=center";
  146.             break;
  147.          case 2:
  148.             var1 = ",align=right";
  149.       }
  150.  
  151.       return this.getClass().getName() + "[hgap=" + this.hgap + ",vgap=" + this.vgap + var1 + "]";
  152.    }
  153. }
  154.